The NAT checksum fixes in patches/linux-2.6.16-rc2/net-csum.patch do
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 8 Feb 2006 23:22:38 +0000 (00:22 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 8 Feb 2006 23:22:38 +0000 (00:22 +0100)
commite5d704d01ea433278b78d2d22dec4c048b065611
treee3b4cae5980d6c70a54ab5f2750d50baacab0a7f
parent2251ccb98d59d83a79376c237b1447f63bbc9b41
The NAT checksum fixes in patches/linux-2.6.16-rc2/net-csum.patch do
not work when port numbers are modified (bug 447).
tcp_manip_pkt()/udp_manip_pkt() modify the protocol checksum to
reflect the changes to ip addresses and port numbers.  When
dev_queue_xmit() finds a message with proto_csum_blank set, it
calculates a new tcp/udp checksum that includes both the modified port
numbers and the modified protocol checksum field...  so the change to
the port numbers affects the protocol checksum twice.

This patch modifies net-csum.patch to remove the checksum mangling for
port numbers in tcp_manip_pkt()/udp_manip_pkt()

Signed-off-by: Jim Dykman <dykman@us.ibm.com>
patches/linux-2.6.16-rc2/net-csum.patch